package com.test.webflux.service;

import com.test.webflux.entity.Product;
import com.test.webflux.entity.ResponseResult;
import org.springframework.web.reactive.function.server.ServerRequest;
import org.springframework.web.reactive.function.server.ServerResponse;
import reactor.core.publisher.Mono;

/**
 * TODO
 *
 * @Description
 * @Author lingmin
 * @Date 2025/4/14 15:41
 **/
public interface ProductService {

    Mono<String> getTitle();


    Mono<ResponseResult<Product>> list(Product product);

    Mono<ResponseResult<Product>> save(Mono<Product> mono);

    Mono<Void> subscribe(Mono<Product> mono);

    Mono<ResponseResult<Product>> getProductById(ServerRequest request);

    Mono<ServerResponse> save2(ServerRequest request);

    Mono<ServerResponse> exeptionHandle(ServerRequest request);


    Mono<Product> monoExeptionHandle(ServerRequest request);
}
